In this document, we use the terms “Website code” to refer to mark-up languages, script languages and programming languages (present languages of their successors) defining a Website, and “Software” to refer to programs written in any programming language, such as Java, C, C++, VisualBasic, Perl, COBOL, SQL, C#, etc. Software and Website code frequently include information in a format which is appropriate to a particular locale. For example, the display and user interfaces presented to clients are usually in a language which in common use in that locale. In the case of Website code which defines a retail Website for clients in a particular locale, prices are frequently quoted in the currency of the locale. Times are given according to the time zone of that locale. All such information (language and culture dependent information) is here referred to as “locale dependent” information.
In general, software written for users in a particular locale must be adapted for other users' locales. For example, a user interface defined by the software to permit a user to control the software, may need to be translated from one language to another. As for Website code, it is estimated, that there are presently about 200 million non-English speaking Internet users, and it is furthermore known that, in the case of a Website which advertises products, people are three times more likely to buy products presented in their native language than if the products are presented to them in a language which, though they understand it, is not their native language. This fact makes it highly desirable to be able to ensure that a Website which is accessed by clients in a certain locale contains locale dependent information appropriate to that locale.
Traditionally, to solve the problem of providing multi-lingual support, companies utilise a two-tier process, in which the software or Website code is first developed for a certain locale, and then, when required, the format is converted for each other locale (e.g. manually), with a conversion process per locale. This process is cumbersome, time-consuming, costly and inefficient to manage, maintain and support. It must be repeated whenever it is intended to provide code appropriate for a new locale. The conversion process may be carried out using manually by string replacements using an Editor or using a table of replacements.